-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor and unify {render, input}-order #918
Conversation
Testing this with floating windows, it seems I can't click on anything outside a rectangle in the top-left corner slightly larger than a quarter of the screen (edit: panels are clickable). Though the size of the clickable area seems to be variable (I think it changes when maximizing and unmaximizing an app?). Edit: But I can confirm that this also fixes #418. 🙃 |
Thanks for testing! Last commit should fix the bugginess around floating windows. |
efa764b
to
026dc1b
Compare
Yeah, stupid of me, the |
I'm not encountering any issues from some initial testing with the latest changes. :) |
I guess |
@git-f0x Good observation, the new code failed to take fullscreen surfaces correctly into account. |
9613ed0
to
415dcc4
Compare
Seems to work fine after a day of extensive testing / running in production. Lets merge |
Draft because this needs more testing.
In theory this should fix:
Essentially this tries to use common code for iterating through all of the surfaces/clients/whatever that can be rendered and receive input.
Unfortunately this means dropping
SplitRenderElements
, as that was/is a source of disagreement between the input-code (which doesn't have a similar method) and the render-code.As such this duplicates a bit of code, but usually the popup code path is much shorter anyway, so we introduce separate code paths for popups and toplevels all over.
This also cleans up some of the code introduced as part of the focus-follows-cursor (and vise versa) mode, which duplicated some more of the input logic. Everything should now either use
State::surface_under
orState::element_under
depending if it would affect pointer or keyboard focus.Initial tests seem promising and don't show any obvious breakage, however this definitely needs more testing and possibly some in-depth reviews, though I would ideally like to merge this before it starts to seriously bitrot.